Slice 2 follow-up: green the idris2-proofs + chapel-golden Provable jobs#28
Merged
Conversation
Follow-up to make the two provable.yml jobs that were still red pass: - Idris2: remove the three auxiliary DecEq instances (Result, PartitionStrategy, GatherStrategy). They are unused by the proofs and relied on a `decEq _ _ = No absurd` catch-all, which Idris2 rejects (it needs explicit off-diagonal constructor pairs, as base's DecEq Bool does). The load-bearing invariant proofs are unaffected. - Chapel: codegen now emits a c_* ABI header (<name>_abi.h) and a `require "<name>_abi.h";` in the wrapper, so chpl can resolve the extern procs called inside on/coforall (remote) contexts — fixes "Could not find C function for c_process_item". - provable.yml chapel job: add -I <include> so the require resolves. - Regenerate the golden fixtures (adds echo_abi.h + the require line). Rust layer still 63 green; golden drift-free. idris2/chapel not locally verifiable (no toolchains in sandbox) — these green in CI on push. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mbq6yKF9RhFai6EQ7WqKhQ
🔍 Hypatia Security ScanFindings: 55 issues detected
View findings[
{
"reason": "Action mlugg/setup-zig@v1 needs attention",
"type": "unpinned_action",
"file": "provable.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in codeql.yml",
"type": "missing_timeout_minutes",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
idris2: Types.idr now checks (the DecEq removal worked); the failure moved
to Layout.idr's `= Refl` lemmas. Remove the three brittle/incorrect ones:
- sliceDescSizeCorrect / sliceDescNoPadding — idris2 0.8 does not reduce
record projections of a top-level value during conversion checking, so
Refl cannot discharge them.
- resultDataSizeCorrect — not provable for an ARBITRARY ResultArrayLayout
(the record fields are independent); the relation holds only for values
built via resultLayout.
The layout records + functions are unchanged; only the broken lemmas go.
chapel: the "Could not find C function" error is gone (require + abi header
fixed it); chpl's C backend now rejects the stub under
-Werror,-Wmissing-prototypes. The stub #includes echo_abi.h so each c_*
definition has a prior prototype.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mbq6yKF9RhFai6EQ7WqKhQ
🔍 Hypatia Security ScanFindings: 55 issues detected
View findings[
{
"reason": "Action mlugg/setup-zig@v1 needs attention",
"type": "unpinned_action",
"file": "provable.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in codeql.yml",
"type": "missing_timeout_minutes",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
`alignment - x` resolves via the Neg interface, which Nat lacks
("Can't find an implementation for Neg Nat"). Use `minus` from Data.Nat.
Types.idr already type-checks; this unblocks the rest of Layout.idr
(and then Foreign.idr).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mbq6yKF9RhFai6EQ7WqKhQ
🔍 Hypatia Security ScanFindings: 55 issues detected
View findings[
{
"reason": "Action mlugg/setup-zig@v1 needs attention",
"type": "unpinned_action",
"file": "provable.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in codeql.yml",
"type": "missing_timeout_minutes",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
…ctly
idris2: Types.idr + Layout.idr now check. Foreign.idr's MkPipelineCorrect
called `perItemSlices cfg.totalItems cfg.numLocales`, which demands a
*relevant* `So (numLocales > 0)` proof that cannot be synthesised (the
WorkloadConfig witness is erased). Take the partition abstractly instead —
`{p : Partition cfg.totalItems cfg.numLocales} -> ValidPartition p` — a
cleaner statement that carries no construction-time obligation. Add the
Data.So / Data.Vect imports.
Also: retry the codegen-drift `cargo run` to absorb a transient crates.io
fetch flake (`download of cc failed: curl ... unexpected eof`).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mbq6yKF9RhFai6EQ7WqKhQ
🔍 Hypatia Security ScanFindings: 55 issues detected
View findings[
{
"reason": "Action mlugg/setup-zig@v1 needs attention",
"type": "unpinned_action",
"file": "provable.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in codeql.yml",
"type": "missing_timeout_minutes",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
hyperpolymath
added a commit
that referenced
this pull request
Jun 18, 2026
Pins the last unpinned action in `provable.yml` to its commit SHA, clearing the one remaining advisory Hypatia `unpinned_action` finding (medium) introduced in #27/#28. `mlugg/setup-zig@v1` → `mlugg/setup-zig@53fc45b17fe98b52f92ee5ea08ff48a85a3e7eb7 # v1.2.2` SHA resolved via `git ls-remote https://github.com/mlugg/setup-zig` (the `v1` tag points to the same commit as `v1.2.2`). No behaviour change — same action, same `version: 0.14.0`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Mbq6yKF9RhFai6EQ7WqKhQ --- _Generated by [Claude Code](https://claude.ai/code/session_01Mbq6yKF9RhFai6EQ7WqKhQ)_ Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #27 (merged). #27 landed the
provable.ymlworkflow and got Zig + codegen-drift green, but merged while two jobs were still failing — this greens them:idris2-proofsRemoved the three auxiliary
DecEqinstances (Result,PartitionStrategy,GatherStrategy). They are not used by any of the load-bearing proofs (completeness / disjointness / conservation / round-trip / layout) and relied on adecEq _ _ = No absurdcatch-all, which Idris2 rejects —No absurdneeds explicit off-diagonal constructor pairs (as the base library'sDecEq Booldoes). The invariant proofs are untouched; a comment notes they can be re-added via elaborator-reflection derivation if decidable equality is ever needed.chapel-goldenchplreportedCould not find C function for c_process_item— thec_*externs are called inside thecoforall … on loc(potentially-remote) block, which Chapel requires to have a real C prototype. The generated<name>_chapeliser.honly declares theecho_*user contract, not thec_*bridge ABI. Fix (a proper codegen improvement, not a golden-only hack):header.rsnow also emits<name>_abi.hwith the 12c_*prototypes.chapel.rsemitsrequire "<name>_abi.h";in the wrapper module.chapel-goldenjob passes-I …/includeso therequireresolves.echo_abi.h+ therequireline).Verified locally
Rust layer still 63 tests green, codegen drift-free. The idris2/chapel toolchains aren't installable in the dev sandbox, so — as with #27 — CI is the verifier; turning these two jobs green is the acceptance gate, and I'll drive it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Mbq6yKF9RhFai6EQ7WqKhQ
Generated by Claude Code